# 定义编译器
CC = gcc

# 定义包含路径和编译选项
CFLAGS = -I ../include -fexec-charset=GBK

# 定义链接选项和库
LDFLAGS = -lbcrypt

# 定义源文件
SOURCES = sm2.c sm2_ec.c sm2_format.c sm2_operation.c sm2_rand.c sm3.c sm2_puhua_test.c

# 定义对象文件（将每个源文件的 .c 替换为 .o）
OBJECTS = $(SOURCES:.c=.o)

# 定义最终生成的可执行文件
TARGET = main.exe

# 默认目标
all: $(TARGET)

# 链接对象文件生成最终的可执行文件
$(TARGET): $(OBJECTS)
	$(CC) $(CFLAGS) -o $(TARGET) $(OBJECTS) $(LDFLAGS)

# 编译每个源文件生成对应的对象文件
%.o: %.c
	$(CC) $(CFLAGS) -c $< -o $@

# 清理生成的对象文件和可执行文件
clean:
	rm *.o $(TARGET)
